Gestion et abstraction des données sur le Web : Projet de création (Optionnel) (Maquette)
Durée estimée: 90 minutes
Présentation
Dans une version précédente du quiz, nous avons appris à enregistrer les données du quiz dans une base de données FirebaseDb, et à charger les données du quiz au démarrage de l'application.
Peut-on aller plus loin dans cette direction ? Une des limites actuelles est de ne proposer qu'un seul Quiz. Que doit-on changer pour proposer un nombre quizz illimité, à charger depuis une base Firebase ? Ce tutoriel et projet) un modèle de liste de listes pour arriver à cette application encore plus flexible et générale. Objectifs: Dans cette leçon ous allez apprendre à
|
Tutoriel Partie I: Mise en place et configuration de la base de données Firebase
Pour commencer, ouvrez App Inventor dans un onglet séparé avec ce
modèle du quiz du président
et suivez le totoriel qui suit.
Tutoriel Partie II: traitement des données du Quiz
Projets de création
Voici quelques pistes pour créer vos propres évolutions du Quiz.
-
Quiz à choix multiples.
Après avoir suivi le tutoriel, sauvegardez une copie de votre application et créez une nouvelle version qui permettra les quiz à choix multiples.
Le projet n'est pas facile, car il implique de modifier la base de données elle-même. Voici la liste des tâches à accomplir :
-
Modifier la base de données:
Pour proposer des quiz à choix multiples, il est nécessaire de revoir la manière dont les données du quizz sont organisées (ce que l'on appelle le modèle de données). Une première manière de faire est d'ajouter une quatrième liste parallèle : la liste des choix multiples. Comme chaque item de cette liste comprend plusieurs proposition, chaque item est donc une liste. La liste des choix multiples est donc une liste de listes.
REMARQUE 1 : Si on écrit la bonne réponse une fois dans la liste des bonnes réponses et une fois dans la liste des choix, on risque de faire des fautes d'orthographe et la bonne réponse ne sera pas reconnue, donc au lieu de dupliquer l'information il vaut mieux que la liste des bonens réponses soit rempléce par la liste des numéros de la bonne réponse. Elle ne sera donc écrite qu'une seule fois, sans risque d'erreur.
Le modèle correspondant est représenté à gauche de la figure ci-dessous.
Une autre possibilité pour organiser la même information est illustrée à droite, avec une seule liste de premier niveau dont chque item regroupe toutes les informations relatives à une question : le texte de la question, le numéro de la réponse, l'URL de la photo et la liste des choix pour cette question.
Quels sont à votre avis les avantages et inconvénients de ces deux organisations ?
-
Modifier l'interface utilisateur (UI):
Modifiez l'interface utilisateur pour gérer les choix multiples. Vous pouvez utiliser un Sélectionneur de liste, mais si vous voulez innover avec un nouveau composant essayez le "curseur animé component" (alias spinner en anglais). Ce composant est similaire au sélectionneur de Liste (ListPicker), maisn conveint mieux pour les menus de choix. (INDICE: Si vous utlisez un "curseur animé" (Spinner), lisez bien la documentation avant de concevoir la base de données. Ce composant marche mieux si le prmeier choix est 'Select one of the following'.) -
Modifier l'Algorithme:
Vous devrez modifier l'algorithme dans le gestionnaire d'évènement FirebaseDB.ValeurReçue (.GotResult) et ailleurs pour gérer les choix multiples.
Pour votre Portfolio
Créez une page nommée : Quiz générique dans la catégorie "Réflexions" de votre portfolio et répondez aux questions suivantes:
- Identifiez une procédure que vous avez définie ou modifiée pour ce projet et décrivez comment il vous a permis de réduire la complexité du programme. Joignez une copie d'écran pour les blocs de programmes correspondants.
- Dans votre code, identifiez un algorithme qui dait une requête à la bse de données. Expliquez le caractère asynchrone de l'algorithm. Joignez une copie d'écran pour les blocs de programmes correspondants.
-
Modifier la base de données: